package com.bbva.itradecomex.bo.impl;

import java.math.BigDecimal;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bbva.itradecomex.bo.iface.FinanciamientoBO;
import com.bbva.itradecomex.dao.iface.FinanciamientoDAO;
import com.bbva.itradecomex.domain.FinanciamientoDetalle;
import com.bbva.itradecomex.domain.FinanciamientoResumen;
import com.bbva.itradecomex.form.FinanciamientoForm;
import com.bbva.itradecomex.util.ITradexUtil;

@Service
public class FinanciamientoBOImpl implements FinanciamientoBO{
	
	@Autowired
	private FinanciamientoDAO financiamientoDAO;
	
	@Override
	public List<FinanciamientoDetalle> getListFinanciamientoDetalle(FinanciamientoForm financiamientoForm) 
			throws Exception {
		return financiamientoDAO.getListFinanciamientoDetalle(financiamientoForm);
	}

	@Override
	public List<FinanciamientoResumen> getListFinanciamientoResumenImp(FinanciamientoForm financiamientoForm)
			throws Exception {
		return financiamientoDAO.getListFinanciamientoResumenImp(financiamientoForm);
	}

	@Override
	public List<FinanciamientoResumen> getListFinanciamientoResumenExp(FinanciamientoForm financiamientoForm)
			throws Exception {
		return financiamientoDAO.getListFinanciamientoResumenExp(financiamientoForm);
	}
	
	@Override
	public void setFooterImpExp(List<FinanciamientoResumen> listFinancResumen, FinanciamientoResumen footerImpExp) {
		if (listFinancResumen != null) {
			BigDecimal totaloOper = new BigDecimal(0);
			BigDecimal totaloMontoUDS = new BigDecimal(0);

			for (FinanciamientoResumen ob : listFinancResumen) {
				totaloOper = ITradexUtil.addBigDecimal(totaloOper,
						ob.getTotOper());
				totaloMontoUDS = ITradexUtil.addBigDecimal(totaloMontoUDS,
						ob.getTotMonto());
			}
			footerImpExp.setTotOper(totaloOper);
			footerImpExp.setTotMonto(totaloMontoUDS);
		}
	}

	@Override
	public void setTotalFinancResumenExpImp(FinanciamientoResumen footerTotalImpExp, FinanciamientoResumen footerImp, 
			FinanciamientoResumen footerExp) {
		footerTotalImpExp.setTotOper(ITradexUtil.addBigDecimal(
				footerImp.getTotOper(), footerExp.getTotOper()));
		footerTotalImpExp.setTotMonto(ITradexUtil.addBigDecimal(
				footerImp.getTotMonto(), footerExp.getTotMonto()));
	}
}
